package com.hhs.storage.bean;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import springfox.documentation.annotations.ApiIgnore;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @Auther: shadow
 * @Date: 2018/10/10 17:05
 * @Description:
 */

@Data
public class InputParam {
    String topdep="a3312rraq1top";
    Boolean isSelfDir=false;
    String curUserId;//当前请求发起人的用户id,获取自jwt
    String remark;
    String id;
    Integer page=1;
    Integer size=10;
    Integer offset=0;
    Integer status;//订单状态
    Integer statusJunior;//订单状态
    String name;
    String account;
    String carFleetId;//车队id
    String carFleetName;//车队名称
    String carFleetType;//车队类型
    String principalName;//负责人名称
    String project;//项目
    String month;//月份
    String licencePlate;//车牌
    String relateType;//关系类型
    Integer personType;//用于考勤设置页面
    //权限点的查询有用到
    Integer type;
    String contractType;//合同类型
    String mainId;
    Boolean isFinished = false;//流程flow 是否结束的标识
    Integer flowId; // 流程id
    Integer flowNextStatus;// 流程下一个状态
    Integer queryType;//查询类型 ：1 合同初审  2 合同终审
    String dataType;//查询类型 ：all=全部项目  my=个人项目
    String departId;
    String dateStr;
    //被忽略的用户id
    String[] ignorUserIds;
    String includeIds;
    String excludeGroupIds;
    //星级
    String[] levels;
    @JSONField(format="yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate signStartTime;//签约开始时间
    @JSONField(format="yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate signEndTime;//签约结束时间
    @JSONField(format="yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate endStartTime;//截止开始时间
    @JSONField(format="yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate endEndTime;//截止结束时间
    @JSONField(format="yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate createTimeStartTime;//截止开始时间
    @JSONField(format="yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate createTimeEndTime;//截止结束时间
    @JSONField(format="yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate completeTimeStartDate;//完成时间开始日期
    @JSONField(format="yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate completeTimeEndDate;//完成时间结束日期
    @JSONField(format="yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate startDate;//开始时间
    @JSONField(format="yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate goDate;//直接输入时间
    @JSONField(format="yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate endDate;//结束时间
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startTime;
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endTime;

    private String userId;
    private String userName;
    private String orderBy;//排序字段
    private Boolean asc=true;//是否升序
    public Integer getOffset(){
        return (this.page-1)*this.size;
    }
    private Boolean projectAboutOnly=false;//是否只查询与当前项目相关
    private String permission;//权限名
    private Integer dayOfXx;    //一个星期或一个月中的第几天
    private List<String> idsList=new ArrayList<>();
    private List<String> roleIds=new ArrayList<>();
    private String targetId;
    private String ids;
    private List<PermissionItem> permissionData=new ArrayList<>();
    private List<String> targetIds=new ArrayList<>();
    private List<String> includeIdsList=new ArrayList<>();
    private String typeSelect;
    private List<String> typeSelectList=new ArrayList<>();
    private String selectList;
    private Integer favorate;
    //项目归类
    private String ttypes;
    private List<String> ttypesList=new ArrayList<>();
    //项目分类
    private String xmfls;
    private List<String> xmflsList=new ArrayList<>();
    //项目状态筛选
    private String statuses;
    private List<String> statusesList=new ArrayList<>();
    //负责人ids
    private String fzrIds;
    //协助人ids
    private String xzrIds;
    //待办类型
    private String ddTypes;
    //会签状态
    private String hqStatuses;
}
